The present invention relates generally to communication between wireless devices. In particular, the present invention is directed to a method and system that allows one wireless device to establish a communication channel with a selected second wireless device.
It is often necessary for electronic devices to communicate with one another in order to exchange data or to provide a centralized control mechanism for the operation of the devices within a particular environment. Typically, electronic devices communicate using an apparatus known as a xe2x80x9cbusxe2x80x9d or xe2x80x9cdata busxe2x80x9d. Although a bus typically consists of a wired communications channel physically connecting devices, it is also possible to construct a bus using a wireless (xe2x80x9ctetherlessxe2x80x9d) communications channel. A wireless communications channel or a wireless bus offers significant advantages by eliminating the physical interconnect between devices.
In order to permit efficient device communication, it is necessary to establish a communications protocol. A communications protocol is a system for the exchange of information between devices and defines a particular communications architecture. For example, communicating devices are often configured in a host/peripheral relationship or a peer/peer relationship. In the host/peripheral arrangement, a host device typically communicates with one or more peripheral devices. A host periodically collects information from its peripherals or sends control information to the peripherals. The process in which a host collects information from its peripherals is known as polling. The host dictates the polling communication sequence with its connected peripheral devices by determining when each peripheral device may xe2x80x9ctalkxe2x80x9d to the host. Under the polling process, unless the host sends permission to a peripheral device, the peripheral cannot send data to the host. The host/peripheral protocol is often referred to as an asymmetric protocol insofar as the host controls the peripherals"" communication abilities.
A typical example of a host/peripheral arrangement is a personal computer (PC) and its various peripheral devices. The host PC is responsible for orchestrating the exchange of data with its peripheral devices and periodically polls all of its peripherals in order to receive data regarding their current state. For example, a host PC will periodically poll its input devices such as the mouse and keyboard to detect events such as mouse movement or the press of key on the keyboard. Upon being polled, these input devices will transmit information regarding their current state to the host PC.
In the case of peer to peer communication, the communication protocol is symmetric in that neither peer device controls the other and communication can be initiated by either device at any time. For example, two host computing systems as peers may need to exchange data over a wireless communications channel.
Before communication may begin between two devices, they must establish a communication channel. Establishment of a communication channel requires that devices recognize each other and initiate communication. A device may communicate with multiple devices simultaneously or only one device at a time. For example, in a host/peripheral environment, a host typically communicates with a plurality of wireless peripheral devices simultaneously using some type of multiplexing scheme. However, each peripheral device generally xe2x80x9ctalksxe2x80x9d to one and only one host device at a time.
In traditional wireless device communications systems there exists no mechanism to direct one device to establish communications with a particular second device. For example, in a multi-host environment, a peripheral will typically establish communications with the host providing the strongest signal or to the first host to initiate communications with the peripheral. However, many scenarios require the flexibility of directing a wireless device to select a particular second device for communications. Lack of this functionality severely limits the performance of wireless device communications systems.
The present invention comprises a method and apparatus that allows a first wireless device to establish communications with a selected second wireless device in a multi-device environment. The selection of the second device may be accomplished either through user input or automatically by a procedure implemented on the first device. According to one embodiment of the present invention, the first device stores a device identifier of the device with which it is currently communicating as well as a device identifier of the new device with which communication is sought. Upon the initiation of the process, the first device performs a scan procedure in which it detects and records the device identifiers of all devices in its range available for communications. Starting with the device holding the device identifier succeeding the device identifier of the current communicating device, the first device sequentially initiates communication with each succeeding device until it has established communications with the device holding the selected device identifier.